Control apparatus and control method therefor

ABSTRACT

When a controller receives a new command from a main controller during overwrite-deletion processing for a specific storage apparatus, the received command is stored at least until completion of the overwrite-deletion processing when the received command is a command to the specific storage apparatus. Alternatively, progression of overwrite-deletion process is stored and priority processing of the received command is executed. On the other hand, when the received command is not a command to the specific storage apparatus, processing for the command is executed.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a control apparatus and a controlmethod for the control apparatus.

2. Description of the Related Art

Conventionally, when discarding a storage apparatus such as a hard diskapparatus (hereinafter a hard disk apparatus is used as an example of astorage apparatus) mounted, for example, in a personal computer (PC) ora printer, data in the hard disk apparatus is deleted to prevent leakageof confidential data. However, it is increasingly common to completelydelete data using a process of overwriting the files on a predeterminednumber of times with specific pattern data in addition to deletion offile management data in the hard disk apparatus.

Recently, enhanced security awareness has caused, other than when harddisks are discarded, a need for overwrite-deletion by a printing jobunit of the operation region in the hard disk apparatus includingintermediate data generated in processing steps and print data from theprint processing steps.

A conventional overwrite-deletion method is configured so that a centralprocessing unit (CPU) that manages the system generates pattern data ona memory to thereby enable use of the pattern data to overwrite a filein the hard disk apparatus on a predetermined number of times.

However, when the size of the file to be deleted by overwriting isextremely large or when a consecutive region on the memory cannot beensured, a large load is placed on the CPU by use of an inefficientmethod in which the above process is repeated many times.

In addition to the conventional method above, a method executing anoverwrite-deletion process has been discussed in Japanese PatentApplication Laid-Open No. 2005-346306, by adding overwrite-deletionconditions to file management information managed by a file system of anoperating system (OS).

In the method discussed in Japanese Patent Application Laid-Open No.2005-346306, a hard disk controller is provided between a CPU formanaging the system and the hard disk apparatus. When file managementinformation stored in the hard disk apparatus is updated,overwrite-deletion conditions stored in the file management informationare read out by the hard disk controller. The hard disk controlleritself uses the overwrite-deletion conditions to executeoverwrite-deletion processing.

Thus, the load on the CPU managing the system is reduced and overallprocessing efficiency of the system is improved by a configuration inwhich only updated management information is written into the hard diskapparatus.

However, the method discussed in Japanese Patent Application Laid-OpenNo. 2005-346306 uses extension of the file management information of thefile system.

In recent built-in apparatuses such as printers, complexity of theconfiguration is increased, and often they are configured by a pluralityof OS. Since a range of OS types from built-in OS to general purpose OSare used, technical and other situations arise due to the dedicatedextension of the file management information.

Furthermore, since the hard disk controller is to rewrite the filemanagement information, when a mirroring system is configured using aplurality of hard disks, control operations are complicated because thesame management information for a plurality of objects is to be updated.Consequently, there are difficulties for application of the method,which is discussed in Japanese Patent Application Laid-Open No.2005-346306, to a wide range of system configurations.

SUMMARY OF THE INVENTION

According to an aspect of the present invention, an apparatus includes areceiving unit configured to receive a command for controlling at leastone of a plurality of storage apparatuses from a host apparatus, asending unit configured to send overwrite data configured to overwrite aregion storing data to a specific storage apparatus, when the receivedcommand is a deletion command to delete the stored data, and a controlunit configured to store the received command at least until completionof sending of the overwrite data if the received command is a commandfor the specific storage apparatus, when a new command is receivedduring sending of the overwrite data to the specific storage apparatus,or store information indicating intermediate processing of sending ofoverwrite data and perform priority execution of the received command,or when the received command is not a command for the specific storageapparatus, execute processing of the command.

Further features and aspects of the present invention will becomeapparent from the following detailed description of exemplaryembodiments with reference to the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate exemplary embodiments, features,and aspects of the invention and, together with the description, serveto explain the principles of the invention.

FIG. 1 is a block diagram illustrating an example of a main controllersystem configured to control a plurality of apparatuses.

FIG. 2 is a block diagram illustrating an example of a hard diskcontroller.

FIG. 3 is a block diagram illustrating a conventional overwrite-deletionmethod.

FIG. 4 illustrates an overwrite-deletion method according to anexemplary embodiment of the present invention.

FIG. 5 illustrates an example of attribute data that is added to anoverwrite-deletion request command.

FIGS. 6A and 6B illustrate an example in which the overwrite-deletionprocess according to an exemplary embodiment of the present invention isapplied to a mirroring system.

FIGS. 7A, 7B, and 7C illustrate an example of a display screen andsettings for an overwrite-deletion process.

FIG. 8 is a flowchart illustrating a process (CLR1) executed on the maincontroller side.

FIG. 9 is a flowchart illustrating a process (CLR2) executed on the maincontroller side.

FIG. 10 is a flowchart illustrating an overwrite-deletion processexecuted in the HDD controller.

FIG. 11 is a flowchart illustrating a power OFF sequence.

FIG. 12 is a flowchart illustrating a power ON sequence.

FIG. 13 is a flowchart illustrating processing of the HDD controlleraccording to a first other exemplary embodiment.

FIG. 14 is a flowchart illustrating processing of the HDD controlleraccording to a second other exemplary embodiment.

DESCRIPTION OF THE EMBODIMENTS

Various exemplary embodiments, features, and aspects of the inventionwill be described in detail below with reference to the drawings.

Elements of one embodiment may be implemented by hardware, firmware,software, or any combination thereof. The term hardware generally refersto an element having a physical structure such as electronic,electromagnetic, optical, electro-optical, and mechanical,electro-mechanical parts, etc. A hardware implementation may includeanalog or digital circuits, devices, processors, applications specificintegrated circuits (ASICs), programmable logic devices (PLDs), fieldprogrammable gate arrays (FPGAs), or any electronic devices. The termsoftware generally refers to a logical structure, a method, a procedure,a program, a routine, a process, an algorithm, a formula, a function, anexpression, etc. The term firmware generally refers to a logicalstructure, a method, a procedure, a program, a routine, a process, analgorithm, a formula, a function, an expression, etc., that isimplemented or embodied in a hardware structure (e.g., flash memory).Examples of firmware may include microcode, writable control store,micro-programmed structure. When implemented in software or firmware,the elements of an embodiment may be the code segments to perform thenecessary tasks. The software/firmware may include the actual code tocarry out the operations described in one embodiment, or code thatemulates or simulates the operations. The program or code segments maybe stored in a processor or machine accessible medium. The “processorreadable or accessible medium” or “machine readable or accessiblemedium” may include any medium that may store or transfer information.Examples of the processor readable or machine accessible medium that maystore include a storage medium, an electronic circuit, a semiconductormemory device, a read only memory (ROM), a flash memory, an erasableprogrammable ROM (EPROM), a floppy diskette, a compact disk (CD) ROM, anoptical storage medium, a magnetic storage medium, a memory stick, amemory card, a hard disk, etc. The machine accessible medium may beembodied in an article of manufacture. The machine accessible medium mayinclude information or data that, when accessed by a machine, causes themachine to perform the operations or actions described above. Themachine accessible medium may also include program code, instruction orinstructions embedded therein. The program code may includemachine-readable code, instruction or instructions to perform theoperations or actions described above. The term “information” or “data”here refers to any type of information that is encoded formachine-readable purposes. Therefore, it may include program, code,data, file, etc.

All or part of an embodiment may be implemented by various meansdepending on applications according to particular features, functions.These means may include hardware, software, or firmware, or anycombination thereof. A hardware, software, or firmware element may haveseveral modules coupled to one another. A hardware module is coupled toanother module by mechanical, electrical, optical, electromagnetic orany physical connections. A software module is coupled to another moduleby a function, procedure, method, subprogram, or subroutine call, ajump, a link, a parameter, variable, and argument passing, a functionreturn, etc. A software module is coupled to another module to receivevariables, parameters, arguments, pointers, etc. and/or to generate orpass results, updated variables, pointers, etc. A firmware module iscoupled to another module by any combination of hardware and softwarecoupling methods above. A hardware, software, or firmware module may becoupled to any one of another hardware, software, or firmware module. Amodule may also be a software driver or interface to interact with theoperating system running on the platform. A module may also be ahardware driver to configure, set up, initialize, send, and receive datato and from a hardware device. An apparatus may include any combinationof hardware, software, and firmware modules.

FIG. 1 is a block diagram illustrating a printing apparatus to which acontrol apparatus according to the present exemplary embodiment can beapplied, and in particular, a multifunction peripheral. In the presentexemplary embodiment, the storage apparatus and the control apparatusfor controlling the storage apparatus will be described respectivelyusing an example of a hard disk and a hard disk controller. However, thepresent invention can be applied to a storage apparatus other than ahard disk and a control apparatus therefor.

A main controller 200 for a multifunction peripheral illustrated in FIG.1 includes a CPU 201. The CPU 201 executes system control andcalculation processing. A memory control unit 202 executes direct memoryaccess (DMA) control and input/output control to various memory devices.

A read only memory (ROM) 203 is configured by a non-volatile memory. TheROM 203 stores data that is not updated such as startup programs orfonts. In the present exemplary embodiment, the ROM 203 is configured toexecute rewrite operations by use of a Flash-ROM. A random access memory(RAM) 204 is a volatile memory such as a synchronous dynamic randomaccess memory (SDRAM) or a double data rate (DDR). The RAM 204 is usedfor a storage region for print data or an operation region of a program,which is to be rewritten.

A local area network interface (LAN-IF) 205 executes interfaceoperations with a local area network 206 connected to a printingapparatus and generally complies with a transmission control protocol ofan internet protocol (TCP/IP). The main controller 200 is connected tonetwork enabled apparatuses such as an external HOST 207 by a networkcable and executes printing operation via the network.

A Reader-IF unit 208 is configured to control communication with ascanner apparatus 209. A copying function is executed by inputting imagedata scanned by the scanner apparatus 209. A FAX-IF unit 210 isconfigured to control communication with a FAX apparatus 211. The FAXapparatus 211 is connected to a telephone line to execute sending andreceiving of FAX data.

An image processing unit 212 executes various image processingoperations on image data, which is input via the LAM-IF unit 205, theReader-IF unit 208, and the FAX-IF unit 210. A panel-IF unit 213executes communication control with a panel apparatus 214. The panelapparatus 214 is a user interface (UI) configured to enable confirmationof the state and various types of setting operations for a printingapparatus by operation of a liquid crystal display or buttons on apanel.

A hard disk interface (HDD-IF) 215 executes input/output control of dataof a hard disk (HDD) controller 216. One or a plurality of hard disk(HDD) apparatuses 217 is connected to the HDD controller 216 to therebycontrol input and output of data using an AT Attachment (ATA) standard(Parallel ATA or Serial-ATA).

The HDD controller 216 is configured to execute redundant array ofindependent disks (RAID) control including mirroring processing byconnection of a plurality of HDD apparatuses. The HDD apparatus 217 is anon-volatile large capacity storage apparatus and is used as a temporarystorage location for print data or to store files.

A video control unit 218 is configured to communicate commands or statuswith a printing unit 219, and transfer print data generated from thememory thereto. The printing unit 219 is the printing apparatus mainbody and is configured to execute printing of print data on paper mainlyin accordance with command information from the video control unit 218.A system bus 220 is a bus representing, for the sake of convenience, acontrol bus, data bus, and a local bus and signal line between anarbitrary blocks.

The present exemplary embodiment is related to data deletion in the HDDapparatus 217 connected to the HDD controller 216. In the presentexemplary embodiment, although the description will assume connection ofthe HDD controller 216 as a separate chip or board to an external unitof the main controller 200 described in FIG. 1, naturally, the HDDcontroller 216 may be integrated with the main controller 200 as asingle chip.

FIG. 2 is a block diagram illustrating a configuration example of an HDDcontroller 216.

In FIG. 2, a CPU 301 executes system control, RAID control, calculationprocessing, and processing of ATA-standard commands. A memory controlunit 302 is configured to execute DMA control and input/output controlto various memory devices. A ROM 303 is a non-volatile memory configuredto store data that is not frequently updated such as startup programsand various types of mode setting values. In the present exemplaryembodiment, a Flash-ROM is used in the ROM 202 to enable rewritingoperations.

A RAM 304 is a volatile memory represented by an SRAM or a DDR memory.The RAM 304 is used to store temporary data or a program operationregion, which is to be rewritten. The HDD-IF unit 215 represents aninput/output unit for the HDD controller 216 connected to the maincontroller 200.

A Device-IF unit 305 executes input/output control of data andATA-standard device commands. The Device-IF unit 305 is connected withthe HDD-IF unit 215 of the main controller 200 illustrated in FIG. 1.

The Host-IF unit 308 executes input/output control of data andATA-standard host commands. The Host-IF unit 308 is connected with theexternal HDD apparatus 217. The HDD apparatus 217 may include a numberof hard disks for a RAID system architecture (for example, two HDDs formirroring processing) and a Host control circuit may be included in theHost-IF unit 308.

An interrupt control unit 306 is configured to execute output controland masking of various types of interrupt signals. A system bus 309represents, for the sake of convenience, a control bus, data bus, and alocal bus and signal line between an arbitrary blocks.

An overwrite-deletion method according to the present exemplaryembodiment will be described in detail below with reference to FIG. 3 toFIG. 5. FIG. 3 illustrates an example of a conventionaloverwrite-deletion method. As used herein, “overwrite-deletion” denotesa method to delete data by overwriting a predetermined pattern ontoexisting data in an HDD apparatus.

As illustrated in FIG. 3, a main controller 401 is connected by an ATAcontrol unit 404 via an ATA bus 407 to a hard disk apparatus (HDD) 406.

When executing overwrite-deletion of a predetermined region (region A408and region B409) in the HDD 406, firstly a consecutive region 405 isensured in the system memory 402 and writing of the overwrite datapattern (in the FIG. 3, “0” data) is executed in the region. Aftercompleting preparation of the memory, startup is executed after settingdesired settings in a direct memory access controller (DMAC) and an ATAcontrol unit 404 in a memory control unit (not illustrated).

In response thereto, the DMAC and ATA control unit 404 executeoverwrite-deletion of data in the memory region 405 by DMA transfer(read-DMA 403) by executing write processing in the same range as theregion A408 in the HDD 406 to be deleted. For example, data in a memoryregion 405 is overwrite-deleted by write processing on a rectangularregion at the head of the region A408 (the ATA standard issues a commandin DMA-out transfer protocol).

When overwrite-deletion is executed for a predetermined number of times,the above sequence is repeated by the predetermined number. The regionon the HDD 406 for overwrite-deletion (region A408, region B409)designates a portion or the whole of the file by a file unit (clusterunit) based on the management information of the file system.

The conventional overwrite-deletion method described above using a CPUof a main controller encounters difficulties when ensuring a largeconsecutive region on the system memory. Consequently, a small amount ofdeletion is to be repeated numerous times in order to delete a largeregion in an HDD apparatus (in recent years, print data size hasdrastically increased as a result of high-quality imaging or colorimaging). Furthermore, only sequential processing can be executed sincenormally continuous commands cannot be issued during transfer using anATA standard.

For the above reasons, the conventional method is inefficient due to thehigh load on the main CPU that controls the system.

FIG. 4 illustrates an overwrite-deletion method according to the presentexemplary embodiment.

As illustrated in FIG. 4, an HDD controller 502 (HDD controller 216 inFIG. 1) is connected using ATA buses 504, 505 (or a cable) between amain controller 501 (main controller 200 in FIG. 1) and a hard diskapparatus (HDD) 503 (HDD apparatus 217 in FIG. 1). The present exemplaryembodiment will describe a configuration in which the HDD controller 502is provided in an external unit of the main controller 501. However, theHDD controller 502 maybe provided in the main controller 501 (board andchip).

The CPU (CPU 201 in FIG. 1) that executes system control of the maincontroller 501 obtains management information for the file system tothereby calculate a deletion range by sector unit (e.g., region A506,region B507) in the HDD 503. When the regions are separated, the CPUexecuting system control of the main controller 501 acquires anoverwrite deletion size (sector number) together with the number ofregions and corresponding header sector addresses.

The CPU executing system control of the main controller 501 generatesoverwrite-deletion request data including a predetermined overwrite datapattern number and an overwrite number. An actual example ofoverwrite-deletion request data is illustrated in FIG. 5.

FIG. 5 illustrates an example of an overwrite-deletion request data inthe overwrite-deletion method according to the present exemplaryembodiment. As illustrated in FIG. 5, in sequence from the header,overwrite-deletion request data 601 includes overwrite-deletionconditions 602 and deletion region and size designation 603 configuredto designate the deletion region and size.

Further details of the overwrite-deletion conditions 602 include HDDselection information 6021, overwriting number 6022, deletion patterndesignation 6023, presence/absence and number of retries 6024,presence/absence and number of verifications 6025, and number N ofdeletion regions 6026. The HDD selection information 6021 selects whichof the plurality of HDD apparatuses to be an object ofoverwrite-deletion processing and may select one up to all HDDapparatuses.

The presence/absence and number of retries 6024 designates a number ofre-processing operations (retries) when an error is generated whenaccessing the HDD apparatus. The presence/absence and number ofverifications 6025 designates the number of comparative processingoperations (verifications) configured to verify whether the actualwriting number into the HDD apparatus coincide with theoverwrite-deletion pattern.

Furthermore, the deletion region and size designation 603 states thedeletion region 6031-603N corresponding to the group number expressed bythe deletion region number N 6026. The deletion region 6031-603N statesthe initial sector header address 60301 and the deletion sector number60302.

Now, returning to FIG. 4, the deletion command will be described below.In the present exemplary embodiment, a deletion command to be used foroverwrite deletion request to the HDD controller 502 is predefined as anextension command based on the ATA standard. For example, a series ofdeletion command groups are defined in advance, which are configured bycombining sub-commands defined by a user and vector unique commandsdefined in the ATA standard.

Use of an ATA standard enables the provision, between the maincontroller 501 and the HDD controller 502, of the series of deletioncommand groups as an extension command according to a Non-Data transferor a programmed input/output (PIO) transfer protocol. Thus, in thepresent exemplary embodiment, there is no particular requirement for useof a bus having a dedicated extension in addition to the ATA standardbus (or cable).

As described above, when the HDD controller 502 is included as aconstitutive element of the main controller 501, there is no particularrequirement for compliance with an ATA standard and a dedicated busspecification may be used.

The processing flow of the overwrite-deletion process will be describedbelow. Firstly, the main controller 501 issues a deletion request to theHDD controller 502 in a format (PIO transfer protocol when using the ATAstandard) in which overwrite-deletion request data is added as attributedata to some of the deletion command groups.

When the HDD controller 502 receives a command, the received command isfirstly determined whether it is an extension command or a standardcommand (normal command when defined in the ATA standard).

When it is determined that the received command is a standard command,the HDD controller 502 issues the received command without modificationto the HDD 503 and executes the normal access processing.

On the other hand, when it is determined that the received command is anextension command, the HDD controller 502 terminates issuance of thereceived command to the HDD 503 and executes a predetermined processthat will be described below.

When the extension command is a deletion command for anoverwrite-deletion request, the HDD controller 502 analyzes the addedattribution data (the overwrite-deletion request data in FIG. 5). Thenthe HDD controller 502 overwrites the deletion sector number 60302 fromthe start sector header address 60301 for the deletion regions6031-603N.

The HDD controller 502 uses a pattern designated by the deletion patterndesignation 6023 to issue a Write command (DMA command complying withDMA-out transfer protocol in the ATA standard) for the number designatedby the overwriting number 6022 to the HDD 503. In this manner, theregion A506 and the region B507 in the HDD 503 can be deleted byoverwriting by a sector unit.

Acquisition of the intermediate overwrite-deletion process and the finalresult is enabled by issuance of an overwrite-deletion status request bythe main controller 501.

In this manner, the overwrite-deletion process according to the presentexemplary embodiment may be executed by the CPU of the main controller501 only by generating predetermined attribute data and basicallyexecuting a request corresponding to a single deletion command to theHDD controller 502. In the present exemplary embodiment, the processingefficiency of the overall system is improved since there is norequirement to ensure a consecutive region in a memory region of themain controller 501 and repetitively to access the HDD 503.

In the present exemplary embodiment, a configuration of deletion requestcommands with added attribute data is adopted without the HDD controllerdirectly analyzing and rewriting file management information. Theattribute information contains the header sector address of the regionto be deleted, the deletion sector size, and other deletion conditions.

In the present exemplary embodiment, the data stored in the hard diskapparatus is handled by a sector unit without handling the data by afile (or by a cluster). In this manner, processing executed by the harddisk controller is simplified, thereby enabling application to a widerange of system configurations.

FIG. 6 illustrates an example of a mirroring (RAID1) system. A mirroringsystem is a method configured to generate a backup provided for anoccurrence of a failure by simultaneously writing the write data into aplurality of other hard disk apparatuses in addition to a master harddisk apparatus.

An example of application of the mirroring system to the presentexemplary embodiment will be described below with reference to FIG. 6.The application example in FIG. 6, two hard disk apparatuses are used.However, the present invention may be applied to a system having anarbitrary number of hard disk apparatuses more than two.

In FIG. 6A, the main controller 101 (main controller 200 in FIG. 1),which mounts the ATA-standard compliant Host-IF, is connected via an ATAbus 105 with the HDD controller 102 (HDD controller 216 in FIG. 1).

The HDD controller 102 includes two Host-Ifs for connecting an HDD1 103and HDD2 104 therewith (HDD 217 in FIG. 1), and one Device-IF forconnecting a main controller 101 therewith.

The HDD1 103 is connected via an ATA bus 106 with the HDD controller102. The HDD2 104 is connected via an ATA bus 107 with the HDDcontroller 102. The HDD controller 102 has a mirroring function asdescribed above and an overwrite-deletion function as illustrated inFIG. 4 and FIG. 5 described above.

AS the overwrite-deletion request commands described above, two types“CLR1” and “CLR2” are defined. CLR1 is a command configured to beexecuted when an HDD apparatus is discarded. CLR2 is a commandconfigured to execute deletion of all data contained in an operationregion during a printing operation by a printing job unit.

Attribute data associated with CLR1 and CLR2 is equivalent to theoverwrite-deletion request data 601 as illustrated in FIG. 5. Thedifference between CLR1 and CLR2 exist in the response timing to themain controller 101.

A CLR1 command outputs a response immediately after completion ofreceipt of overwrite-deletion request, and is ready to receive anothercommand. On the other hand, a CLR2 command does not respond untilcompletion including that process and consequently cannot receive asubsequent command during that period. This means that the CLR2 commandis handled in the same manner as other standard commands.

Next, the CLR1 command and the CLR2 command will be used to describe howan overwrite-deletion command is used in a discard operation and by aprinting job unit. FIG. 6A illustrates a state when replacement of harddisk is applied due to some type of abnormality in the HDD2 104 inmirroring processing. An abnormality in the HDD apparatus does notnecessarily cause an access failure.

Although access is possible despite of a prior warning caused by partialsector failure, abnormal noise, or SMART information, there are manysituations in which the hard disk apparatus is to be replaced. Deletionof user regions, before a service engineer replacing and removing acomponent, may be performed for improving security when suchabnormalities occur.

An example of overwrite-deletion, when discarded, prior to replace theHDD2 104, will be described below with reference to FIG. 6A and FIG. 6B.

In FIG. 6A, the main controller 101 selects the HDD2 104 to bediscarded, and issues a CLR1 command to the HDD controller 102. The HDDcontroller 102 having received the CLR1 command immediately responds tothe main controller 101 after confirming the details of attribute data.

Then, the HDD controller 102 uses the details of the attribute data (HDDselection information 6021) added to the CLR1 command to select arelevant hard disk. In this case, the HDD2 104 is selected as therelevant hard disk.

The HDD controller 102 executes an overwrite-deletion process ondesignated number of regions from a head address of a designated sectorin the relevant hard disk on a designated number of times with adesignated pattern. The notation “Write (CLR1)” in FIG. 6A indicates aWrite command issued for a CLR1 command process (DMA command in theATA-standard DMA-out transfer protocol).

FIG. 6B illustrates a case where another command (CLR2 or standardcommand) is issued from the main controller 101 during anoverwrite-deletion process (Write (CLR1)) of the HDD2 104.

When another command is received in CLR1 processing, the HDD controller102 processes the received another command if the received anothercommand does not relate to the HDD2 104 under CLR1 processing.

The received another command is processed in parallel with the CLR1processing. After temporarily suspending the CLR1 process at apredetermined break and saving the intermediate process in the ROM 303,the HDD controller 102 may execute control so that the received anothercommand undergoes priority processing. After priority processing ofanother command, the HDD controller 102 executes control so that theCLR1 process is automatically restarted.

When another command is received by the HDD2 104 in CLR1 processing, theHDD controller 102 executes the following control. The HDD controller102 saves the received another command at least until completion of CLR1processing, or saves the partially processed CLR1 process in the ROM 303and executes priority processing of the received command.

The CLR2 command (overwrite-deletion by a printing job unit) may beissued as the another command. When the CLR2 command is selectivelyissued to the HDD2 104 to be discarded in execution of CLR1 processing,the operation may be determined to be meaningless and a predeterminederror process may be executed.

Also when a command other than CLR2 is selectively issued to the HDD2104 to be discarded during execution of CLR1 processing, the operationmay be determined to be meaningless and a predetermined error processmay be executed.

After completion of CLR1 processing, the internal status of the HDDcontroller 102 is changed to a completion state. The internal status isnotified to the main controller 101 of completion of processingaccording to an overwrite-deletion status request command described inFIG. 4. However, it is of course possible to use an interrupt signal tonotify completion of CLR1 processing to the main controller 101.

As described above, according to the present exemplary embodiment,normal access is possible to normal hard disk apparatuses whileexecuting overwrite-deletion of the hard disk apparatus that has failed.Thus a mirroring system can be configured with improved efficiency byeliminating user downtime and enhanced security.

Next, an overwrite-deletion setting screen will be described referringto FIGS. 7A, 7B, and 7C. FIGS. 7A, 7B, and 7C illustrate an example of adisplay screen and settings in deletion by a printing job unit (when aCLR2 command is used) and discard operations (a CLR1 command is used).

A screen 701 illustrated in FIG. 7A illustrates an overwrite-deletion(CLR1) setting screen when a discard operation is performed. The screen701 is displayed by the CPU 201 on a display unit of the panel apparatus214 according to setting instructions for overwrite-deletion (CLR1) whena discard operation is performed as a result by a user operating abutton or liquid crystal display on the panel apparatus 214. An exampleof detailed settings will be described from the beginning of thesequence.

In “select object HDD (HDD apparatus)” 702, a minimum of one to all HDDsare selected as an object for discarding (in FIG. 7A, HDD 1 isselected). In “overwrite data pattern setting” 703, a fixed value or arandom value is selected. However, in this process, fixed and randomvalues may be combined. For example, the process may configure thesetting as (fixed value: 0×00, random value) and execute deletion usingthe 0×00 data for the first time and use the random value for the secondtime.

In “overwrite number designation” 704, the repetition number ofoverwrite-deletion processes by a designated overwrite data pattern isdesignated. In “deletion range designation” 705, a predefined partial orentire region is designated. Furthermore, the deletion range designationmay be configured to directly input a header sector address and deletionsize.

In “designate presence/absence and number of retries” 706, the presenceor absence of retries and the number of retries, when an error occurs,are designated. In “designate presence/absence and number ofverifications” 707, the presence or absence of verifications of anoverwritten data pattern and the number of verifications are designated.Processes other than “select object HDD” 702 described above do notrequire specific input when processing is executed using a predeterminedflow.

An overwrite-deletion process on the selected HDD is started when thestart button 708 is pressed.

A screen 709 illustrated in FIG. 7B enables control and confirmation ofthe progression of the overwrite-deletion (CLR1) in discard operations.The screen 709 is displayed by the CPU 201 on a display unit of thepanel apparatus 214 according to progression confirmation instructionsfor overwrite-deletion (CLR1) in discard operations input by a useroperating a button or liquid crystal display on the panel apparatus 214.An example of setting items will be described from the beginning of thesequence.

In “bar display” 710, the progression acquired from status informationfor an overwrite-deletion status request command is displayed. Theoverwrite process is temporarily stopped by pressing the “temporary stopbutton” 711 of the screen 709 and the processing can be restarted bypressing the “restart button” 712.

Deletion processing can be suspended (stopped) by pressing the “suspendbutton” 713. Although not illustrated, when each of the “temporary stopbutton” 711, the “restart button” 712 and the “suspend button” 713 arepressed, a deletion command for the respective processes is issued tothe HDD controller 502.

A screen 714 illustrated in FIG. 7C is an overwrite-deletion (CLR2)setting screen by a printing job unit. The screen 714 is displayed bythe CPU 201 on a display unit of the panel apparatus 214 according tosetting instructions for overwrite-deletion by a printing job unit inputby a user operating a button or liquid crystal display on the panelapparatus 214. An example of setting items will be described from thebeginning of the sequence.

In “validate overwrite deletion by a printing job unit” 715, the usercan designate whether or not to execute overwrite-deletion by a printingjob unit. The processes in “designate overwrite data pattern” 716 and“designate overwrite number” 717 are equivalent to the details describedfor the overwrite-deletion setting screen in discard operations andtherefore description will not be repeated. Furthermore, processes otherthan “validate overwrite deletion by a printing job unit” 715 describedabove do not require specific input when processing is executed using apredetermined flow.

The object HDD for overwrite-deletion (CLR2) by a printing job unitcorresponds to the HDD used in the printing job. In other words, whenonly one HDD (for example, a primary HDD) is used in a printing job,only that HDD is the object HDD. Furthermore, when all or a plurality ofHDDs are used in a printing job, those HDDs (for example, all or aplurality of HDDs) are the object HDDs.

The process flow on the main controller side for an overwrite-deletion(CLR1) when discarding an HDD apparatus and an overwrite-deletion (CLR2)by a printing job unit will be described hereafter.

FIG. 8 is a flowchart illustrating a CLR1 process executed by the maincontroller 200. The process illustrated in the flowchart in FIG. 8 isone of functions implemented by the CPU 201, which is configured to reada program recorded in the ROM 203 in the main controller 200 illustratedin FIG. 1.

When an overwrite-deletion instruction input from the panel apparatus214 in discard operation is received, the CPU 201 of the main controller200 starts the processing illustrated in the flowchart.

Firstly, in step S801, the CPU 201 acquires an HDD status and storesinformation including predefined deletion region information or thenumber of mounted HDDs in a predetermined location. The process executedin step S801 as described above may be executed when a user executes anoverwrite-deletion instruction in discard operations or maybepre-executed when turning the power ON.

In step S802, the CPU 201 of the main controller 200 displays theoverwrite-deletion setting screen 701 in discard operations and receivessettings input by a user.

In step S803, when it is detected that a user has pressed the startbutton 708, the CPU 201 of the main control 200 generatesoverwrite-deletion request data 601 (FIG. 5) using information stored instep S801, and values set on the screen 701, and sends theoverwrite-deletion request data 601 as attribute data together with aCLR1 command to the HDD controller 216.

After receiving the CLR1 command, the HDD controller 216 responds to themain controller 200 and uses the overwrite-deletion request data addedto the CLR1 command to determine the overwrite-deletion conditions.Furthermore, the HDD controller 216 executes CLR1 background processingfor the designated HDD.

The CPU 201 of the main controller 200, which has sent the CLR1 commandto the HDD controller 216 in step S803, is placed in a response standbystate by the HDD controller 216. The period of such a response standbystate may be determined by an interrupt standby or a status pollingprocess to the HDD controller 216.

The CPU 201 of the main controller 200 waits for the response from theHDD controller 216 (NO in step S804), and when the response is received(YES in step S804), the process proceeds to step S805. Thereafter, theCPU 201 in the main controller 200 can send a subsequent command to theHDD controller 216.

Then, in step S805, the CPU 201 of the main controller 200 acquires thedeletion status (result) from the HDD controller 216 and, in step S806,determines the acquired deletion status.

In step S806, when it is determined that the deletion process is notcomplete (NOT COMPLETED in step S806), the CPU 201 of the maincontroller 200 returns the processing to step S805 after a predeterminedtime period has elapsed, and re-acquires the deletion status.

On the other hand, in step S806, when it is determined that the deletionprocess has been successful (SUCCESS in step S806), the CPU 201 of themain controller 200 terminates the processing of the flowchart. Amessage to the effect that the deletion process has been successful maybe displayed on the panel display 214.

When it is determined in step S806 that the deletion process has failed(FAILURE in step S806), then, in step S807, the CPU 201 of the maincontroller 200 displays a warning message that prompts erasure of datain the HDD using another method such as physical destruction. Then theprocessing in the flowchart is terminated.

FIG. 9 is a flowchart illustrating a CLR2 process executed by the maincontroller 200. The process illustrated in the flowchart is one offunctions implemented by the CPU 201, which is configured to read aprogram recorded in the ROM 203 in the main controller 200 illustratedin FIG. 1.

When the security setting screen 714 indicates that theoverwrite-deletion process by a printing job unit is valid asillustrated in FIG. 6, the CPU 201 of the main controller 200 starts theprocessing in the flowchart by a printing job execution unit(immediately executed after the printing job).

Firstly, in step S901, the CPU 201 acquires a printing status for thecurrent printing job. The printing status is status information such asthe operation region in the HDD used in the printing job (includingprint data). Furthermore, the operation region may be acquired from filemanagement information or may be a predetermined fixed region.

Then, in step S902, the CPU 201 uses overwrite-deletion conditionsstored in the ROM 203 and set in the security setting screen 714 (FIG.6), and printing status information acquired in step S901 to generateoverwrite-deletion request data 601 (FIG. 5).

In step S903, the CPU 201 of the main controller 200 is placed in aprinting completion standby state for the current printing job. The CPU201 of the main controller 200 waits until completion of the currentprinting processing (NO in step S903), and when completion of printingis confirmed (YES in step S903), the process proceeds to step S904.

In step S904, the CPU 201 sends the overwrite-deletion request data 601(FIG. 5) generated in step S902 and the CLR2 command to the HDDcontroller 216. When using a system in which specification of theoperation region is not possible until completion of printingprocessing, the preparation of overwrite-deletion request data in stepS902 may be performed after the completion of printing processing.

After receiving the CLR2 command, the HDD controller 216 uses theoverwrite-deletion request data added to the CLR2 command to determinethe overwrite-deletion conditions, and executes the CLR2 process on aspecified HDD. When the CLR2 process is completed, the HDD controller216 responds to the main controller 200.

The CPU 201 of the main controller 200, which sends the CLR2 command inthe step S904 to the HDD controller 216, is placed in a response standbystate from the HDD controller 216. The period of such a response standbystate may be determined by an interrupt standby or a status pollingprocess to the HDD controller 216.

In step S905, the CPU 201 of the main controller 200 waits for theresponse from the HDD controller 216 (NO in step S905), and when theresponse is received (YES in step S905), the process proceeds to stepS906. Thereafter, the CPU 201 in the main controller 200 can send thenext command to the HDD controller 216.

In step S906, the CPU 201 of the main controller 200 acquires thedeletion status (result) from the HDD controller 216 and, in step S907,determines the acquired deletion status.

In step S907, when it is determined that the deletion process has beensuccessful (SUCCESS instep S907), the CPU 201 of the main controller 200terminates the processing of the flowchart. A message to the effect thatthe deletion process has been successful may be displayed on the paneldisplay 214.

On the other hand, in step S908, when it is determined, in step S907,that the deletion process has failed (FAILURE in step S907), the CPU 201of the main controller 200 displays a message on the panel apparatus 214to the effect that deletion has failed, and executes predetermined errorhandling. Then the processing in the flowchart is terminated.

Next, the processing flow in the HDD controller 216 will be described.FIG. 10 is a flowchart illustrating an internal process in the HDDcontroller 216, which has received a standard command, a CLR1 command,or a CLR2 command from the main controller 200. The processing in theflowchart is one of functions implemented by the CPU 301, which isconfigured to read a program recorded in the ROM 303 in the HDDcontroller 216 illustrated in FIG. 2.

In step S1001, when a command is received from the main controller 200,the CPU 301 of the HDD controller 216 advances the processing to stepS1002. In step S1002, the CPU 301 of the HDD controller 216 determineswhether the command received in step S1001 is a standard command definedby the ATA standard or an extension command such as a deletion command.Herein, an extension command is limited to CLR1 and CLR2.

Then, in step S1002 described above, when it is determined that thereceived command is a standard command (YES in step S1002), the CPU 301of the HDD controller 216 advances the processing to step S1003.

Then, in step S1003, the CPU 301 of the HDD controller 216 executesnormal processing. After completion of the processing, in step S1004, aresponse is sent to the Host (main controller 200), and then theprocessing of the flowchart is terminated.

On the other hand, in step S1002, when it is determined that thereceived command is not a standard command (NO in step S1002), the CPU301 of the HDD controller 216 advances the processing to step S1005.

In step S1005, the CPU 301 of the HDD controller 216 determines whetheror not the command received in the step S1001 is a CLR1 command. In stepS1005, when it is determined that the command received in the step S1001is a CLR1 command (YES in step S1005), the CPU 301 of the HDD controller216 advances the processing to step S1006.

In step S1006, the CPU 301 of the HDD controller 216 immediately sends aresponse to the Host (main controller 200) and then, in step S1007,executes overwrite-deletion background processing using the designatedconditions.

On the other hand, in step S1005, when it is determined that thereceived command is not a CLR1 command (NO in step S1005), the CPU 301of the HDD controller 216 advances the processing to step S1008.

Then, in step S1008, the CPU 301 of the HDD controller 216 determineswhether or not the command received in step S1001 above is a CLR2command. When it is determined in step S1008 that the received commandis a CLR2 command (YES in step S1008), the CPU 301 of the HDD controller216 advances the processing to step S1009.

In step S1009, the CPU 301 of the HDD controller 216 executesoverwrite-deletion processing using the designated conditions, and aftercompletion of processing, in step S1010, sends a response to the Host(main controller 200). Then the processing of the flowchart isterminated.

On the other hand, in step S1008, when it is determined that thereceived command is not a CLR2 command (NO in step S1008), the CPU 301of the HDD controller 216 advances the processing to step S1011.

In step S1011, the CPU 301 of the HDD controller 216 executes anotherprocessing (processing according to the received command), andterminates the processing of the flowchart.

Although not illustrated in FIG. 10, after the CPU 301 of the HDDcontroller 216 responds to the Host, the CPU 301 is in a receivedcommand standby state, which enables reception of a new command from theHost.

In the processing illustrated in FIG. 10, standard command processing ishandled in the same manner as a CLR2 command (deletion processing by aprinting job unit). Furthermore, after reception of a CLR1 command,immediate response to the Host means that the Host can issue asubsequent command. In the present exemplary embodiment, as describedabove, the CLR2 command is configured in the same format as a standardcommand. However, although all overwrite-deletion request commands maybe configured in a CLR1 command format, there is no particularlimitation on the invention in this regard.

The processing flow when the power is ON and the processing flow whenthe power is OFF in CLR1 processing will be described below.

FIG. 11 is a flowchart illustrating processing when the power is OFF inoverwrite-deletion processing (CLR1). The processing in the flowchart isone of functions implemented by the CPU 301, which is configured to reada program recorded in the ROM 303 in the HDD controller 216 illustratedin FIG. 2. Herein, as an extension command a Shut Down command promptingpreparation for power OFF is defined.

In step S1101, when a command is received from the main controller 200,the CPU 301 of the HDD controller 216 advances the processing to stepS1102. In step S1102, it is determined whether or not the receivedcommand is a Shut_Down command. Instep S1102, when it is determined thatthe received command is not a Shut_Down command (NO in step S1102), theCPU 301 of the HDD controller 216 advances the processing to step S1103.

In step S1103, the CPU 301 of the HDD controller 216 executes anotherprocessing operation (processing according the received command), andterminates the processing of the flowchart.

On the other hand, when it is determined that the received command is aShut_Down command (YES in step S1102), the CPU 301 of the HDD controller216 advances the processing to step S1104.

In step S1104, the CPU 301 of the HDD controller 216 temporarily stopsthe current overwrite-deletion process (CLR1). When the CLR1 process isnot being currently performed, no particular processing is executed instep S1104.

In step S1005, the CPU 301 of the HDD controller 216 stores parameterinformation (sector address when stopped, overwrite-deletion conditionsetc.) until the overwrite-deletion process (CLR1) is stopped in theFlash memory (ROM 303). When CLR1 processing is not being executed atthis time, in step S1105, information to the effect that CLR1 processingis not currently performed is stored in the Flash memory (ROM 303).

Next, in step S1106, after completion of preparation for power OFF, theCPU 301 of the HDD controller 216 responds to the Host (main controller200). Then the processing in the flowchart is completed.

In step S1107, the CPU 201 of the Host (main controller 200) afterreceiving a response executes a predetermined power OFF sequence tothereby place the power source in the OFF state.

The entire power OFF sequence includes processing configured to issue aStandby command or Sleep command to place the power of the HDD apparatussafely in an OFF state. However, it is described as execution of powerOFF processing.

In other words, the Shut_Down command illustrated in FIG. 11 may berewritten to a command for shutting off the HDD power source (Shut_Down,Standby, or Sleep). For example, when the HDD controller 216 receives acommand to shut off a specific HDD power source in overwrite-deletionprocessing to the specified HDD apparatus, information indicating theprogression state of the overwrite-deletion processing is saved in aflash memory.

When the specified HDD apparatus is started up, the HDD controller 216controls the specified HDD apparatus to restart sending of overwritingdata based on the information saved in the flash memory indicating theprogression state of the sending of overwrite-deletion data.

Although an example is described in which a response to the Host isexecuted after the parameter information is saved in the Flash memory,when time is to save such information, the parameter information may besaved after firstly responding to the Host. In this case, the Host (maincontroller 200) uses polling to confirm status information for the HDDcontroller 216 or waits for an interruption.

The processing steps, after the power source is placed in the OFF stateduring CLR processing and subsequently is placed in the ON state, willbe described hereafter using FIG. 12.

FIG. 12 is a flowchart illustrating processing when the power source isplaced in the OFF state during CLR processing, and then subsequently isplaced in the ON state. The processing in the flowchart is one offunctions implemented by the CPU 301, which is configured to read aprogram recorded in the ROM 303 in the HDD controller 216 illustrated inFIG. 2.

In step S1201, the power source is placed in the ON state. Then in stepS1202, after executing a predetermined startup sequence, the CPU 301 ofthe HDD controller 216 acquires the status prior to power OFF from theFlash memory (ROM 303), and executes confirmation of the status.

In step S1203, the CPU 301 of the HDD controller 216 determines whetheror not CLR1 processing was executed prior to power OFF. When it isdetermined in the step S1203 that CLR1 processing was executed prior topower OFF (YES in step S1203), the CPU 301 of the HDD controller 216advances the processing to step S1204.

In step S1204, the CPU 301 of the HDD controller 216 uses the acquiredparameter information (sector address when stopped, overwrite-deletionconditions) to execute automatic consecutive processing of the CLR1process after the sector address when processing was stopped. Then theprocessing in the flowchart is terminated.

On the other hand, when it is determined in the step S1203 that CLR1processing was not executed prior to power OFF (NO in step S1203), theCPU 301 of the HDD controller 216 terminates processing of the flowchartat that point.

Even when CLR1 processes is being executed as described above,currently-executed CLR1 processing can be continuously executed untilcompletion of processing after power ON by executing a predeterminedpower OFF/ON processing sequence.

The first exemplary embodiment described above is configured so that aCLR1 command is used for discarding an HDD apparatus, and the CLR2command is used for deletion by a printing job unit. Furthermore, theCLR1 command is defined to output a response to the main controllerimmediately after receipt by the HDD controller, and a CLR2 command isdefined to response after completion of the processing.

As another first exemplary embodiment, a control method will bedescribed in which when a CLR2 command has the same definition as CLR1,in other words, a response is output from the HDD controller 216 to theHost immediately after receipt thereof to thereby enable receipt of asubsequent command.

In the CLR2 process, which is a deletion process executing duringprinting, when employing a mirroring configuration using two HDDapparatuses as described in FIG. 6, printing data and intermediate datastored in the same location may be overwrite-deleted at the same timeusing a mirroring process.

A control flow in an HDD controller according to a CLR2 process inanother first exemplary embodiment will be described referring to FIG.13.

FIG. 13 is a flowchart illustrating inner processing of the HDDcontroller 216 upon receipt of a standard command, a CLR1 command, or aCLR2 command from the main controller 200. The processing in theflowchart is one of functions implemented by the CPU 301, which isconfigured to read a program recorded in the ROM 303 in the HDDcontroller 216 illustrated in FIG. 2.

In step S1301, the CPU 301 of the HDD controller 216 waits for a commandfrom the main controller 200 (NO in step S1301). When it is determinedthat a command is received (YES in step S1301), the process proceeds tostep S1302.

In step S1302, the CPU 301 of the HDD controller 216 determines whetheror not the command received in step S1301 is a CLR2 command. When it isdetermined that the received command is a CLR2 command (YES in stepS1302), the CPU 301 of the HDD controller 216 advances the processing tostep S1303.

In step S1303, the CPU 301 of the HDD controller 216 immediatelyresponds to the Host (main controller 200). In step S1304, the CPU 301of the HDD controller 216 uses the received attribute data to analyzethe overwrite-deletion conditions, and execute backgroundoverwrite-deletion processing using the designated conditions. In orderto simplify description, in FIG. 13, it is assumes that a plurality ofCLR2 commands are not issued.

On the other hand, when it is determined in step S1302 that the receivedcommand is not a CLR2 command (NO in step S1302), the CPU 301 of the HDDcontroller 216 advances the processing to step S1305.

In step S1305, the CPU 301 of the HDD controller 216 determines whetheror not CLR2 processing is currently being executed. When it isdetermined in step S1305 that CLR2 processing is not currently executed(NO in step S1305), the CPU 301 of the HDD controller 216 advances theprocessing to step S1306. In step S1306, the CPU 301 of the HDDcontroller executes the command received in step S1301, and then, instep S1307, outputs a response to the Host at a predetermined timing.Then the process is returned to step S1301, and waits for a subsequentcommand.

On the other hand, when it is determined in step S1305 that CLR2processing is currently executed (YES in step S1305), the CPU 301 of theHDD controller 216 advances the processing to step S1308. In step S1308,the CPU 301 of the HDD controller 216 temporarily saves the receivedcommand and, then, in step S1309, an access request region by thecommand is calculated.

In step S1310, the CPU 301 of the HDD controller 216 compares the accessrequest region of the received command with the CLR2 processing region,which is currently executed, to determine whether or not there isoverlapping in the regions. In step S1310, when it is determined thatthere is no overlapping between the access request region of thereceived command and the CLR2 processing region that is currentlyexecuted (NO in step S1310), the CPU 301 of the HDD controller 216advances the processing to step S1311.

In step S1311, the CPU 301 of the HDD controller 216 temporarily stopsthe current CLR2 processing (maintains required parameters) and then, instep S1312, performs priority execution of the received command. Then,after completion of processing of the received command, in step S1313,the CPU 301 of the HDD controller 216 responds to the Host (maincontroller 200) and, in step S1314, restarts the CLR2 processing that istemporarily stopped. Then, the process returns to step S1301, and waitsfor the next command.

On the other hand, when it is determined in step S1310 that there isoverlapping between the access request region of the received commandwith the CLR2 processing region which is currently executed (YES in stepS1310), the CPU 301 of the HDD controller 216 advances the processing tostep S1315.

In step S1315, the CPU 301 of the HDD controller 216 temporarily stopsthe current CLR2 processing (maintains required parameters) and then, instep S1316, performs priority execution of the received command. Then,after completion of processing of the received command, in step S1317,the CPU 301 of the HDD controller 216 responds to the Host (maincontroller 200). To this point, the processing is the same as theprocessing when there is no overlapping as described above.

Then, in step S1318, the CPU 301 of the HDD controller 216 restarts CLR2processing that is temporarily stopped by taking the calculated regionsof overlapping into account. The process returns to step S1301, andwaits for the next command.

Now, the restart of the CLR2 processing taking in consideration of theoverlapping in step S1318 described above will be described. When theaccess range of the received command during CLR2 processing overlapswith the deletion range, the overlapping region, when restart the CLR2,is not be overwritten with the deletion pattern if the command forpriority execution in particular is a Write process.

More specifically, the CPU 301 of the HDD controller 216 perform controlusing the calculation results of overlapping regions so that overlappingportions in the remaining deletion range are skipped when executingoverwriting-deletion processing. On the other hand, when the command forpriority execution in particular is a Read process, no consideration isto be given to the presence of overlapping.

FIG. 14 is a flowchart illustrating inner processing of the hard diskcontroller relating to CLR2 processing in another second exemplaryembodiment.

FIG. 14 is a flowchart illustrating an inner processing of the HDDcontroller 216, which has received a standard command, a CLR1 command,or a CLR2 command from the main controller 200. The processing in theflowchart is one of functions implemented by the CPU 301, which isconfigured to read a program recorded in the ROM 303 in the HDDcontroller 216 illustrated in FIG. 2.

Steps S1401-S1404 are the same as steps S1301-S1304 described above, andtherefore the description thereof will not be repeated. In step S1402,when the CPU 301 of the HDD controller 216 determines that the commandreceived in step S1401 is not a CLR2 command (NO in step S1401), the CPU301 advances the processing to step S1405.

In step S1405, the CPU 301 of the HDD controller 216 determines whetheror not CLR2 processing is currently executed. When it is determined instep S1405 that CLR2 processing is not currently executed (NO in stepS1405), the CPU 301 of the HDD controller 216 advances the processing tostep S1408.

In step S1408, the CPU 301 of the HDD controller 216 executes the savedreceived command, and then after completion of processing of thereceived command, in step S1409, outputs a response to the Host (maincontroller 200). Then the process returns to step S1401, and waits forthe next command.

On the other hand, when it is determined in step S1405 that CLR2processing is currently executed (YES in step S1405), the CPU 301 of theHDD controller 216 advances the processing to step S1406. In step S1406,the CPU 301 of the HDD controller 216 temporarily stores the receivedcommand. When the received command is a Write process, the write data isalso be temporarily saved.

Then in step S1407, the CPU 301 of the HDD controller 216 waits forcompletion of the currently executed CLR2 process (NO in step S1407). Instep S1407, when it is determined that the currently executed CLR2process has been completed (YES in step S1407), the CPU 301 of the HDDcontroller 216 advances the processing to step S1408, and executes thesaved and received command.

After completion of processing of the received command, in step S1409,the CPU 301 of the HDD controller 216 outputs a response to the Host(main controller 200). Then, the process returns to step S1401, andwaits for the next command.

As described above referring to FIG. 13 and FIG. 14, the deletioncommand (CLR1) for discarding an HDD apparatus and a deletion command(CLR2) executed by a printing job unit may have the same processingcontents and differ only with respect to a command code fordistinguishing the purpose. In other words, CLR2 illustrated in FIG. 13and FIG. 14 may be replaced with CLR1.

In FIG. 13, when a new command is received during overwriting-deletionprocessing (CLR1 or CLR2) from a host apparatus such as the maincontroller 200, the HDD controller 216 stores the intermediate processof the overwriting-deletion process and executes priority processing ofthe received command. Furthermore, in FIG. 14, when a new command isreceived during overwriting-deletion processing from a host apparatussuch as the main controller 200, the HDD controller 216 stores thereceived command until completion of the overwriting-deletion process.

However, the HDD controller 216 may perform control to change processingaccording to whether the command received during theoverwriting-deletion process is a command to the object hard disk forthe overwriting-deletion process.

For example, when the command received during the overwriting-deletionprocess is a command to the object hard disk for theoverwriting-deletion process, the HDD controller 216 executes control asillustrated in FIG. 13 and FIG. 14. In other words, the HDD controller216 stores the received command until completion of theoverwriting-deletion process, or saves the progression state of theoverwriting-deletion process and performs priority execution of thereceived command.

When the command received during the overwriting-deletion process is nota command to the object hard disk for the overwriting-deletion process,the HDD controller 216 performs control so that the processing for thereceived command is executed.

As described above, according to each of the exemplary embodiments, theload caused by an overwriting-deletion process on a main controller issuppressed to a minimum, and an HDD controller is constructed with asimple configuration, thereby enabling the present invention to beapplied to a wide range of system configurations. Furthermore, theoverwriting-deletion process enables normal access to the HDD apparatusand thus enables efficient execution of the overwriting-deletion processas an overall system.

Since power shutdown and operations after startup can be automaticallyprocessed in a continuous manner, the overwriting-deletion process canbe efficiently executed as an overall system. The present invention isnot limited to the various configurations of data and operationaldetails described above, and may take a variety of configurations oroperational details according to the use or purpose.

Although exemplary embodiments have been described above, the presentinvention may include aspects as such a system, apparatus, method,program, or storage medium. More specifically, the present invention maybe applied to a system including a plurality of devices or may beapplied to an apparatus formed from one device.

In each of the above exemplary embodiments, a control apparatusaccording to the present invention is described using an example of anHDD controller configured to control a hard disk. However, the controlapparatus according to the present invention may be a control apparatusconfigured to control a storage apparatus other than a hard disk, and isnot limited to a hard disk controller. For example, the controlapparatus may control a flash memory.

Aspects of the present invention can also be realized by a computer of asystem or apparatus (or devices such as a CPU or MPU) that reads out andexecutes a program recorded on a memory device to perform the functionsof the above-described embodiments, and by a method, the steps of whichare performed by a computer of a system or apparatus by, for example,reading out and executing a program recorded on a memory device toperform the functions of the above-described embodiments. For thispurpose, the program is provided to the computer for example via anetwork or from a recording medium of various types serving as thememory device (e.g., computer-readable medium). In such a case, thesystem or apparatus, and the recording medium where the program isstored, are included as being within the scope of the present invention.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all modifications, equivalent structures, and functions.

This application claims priority from Japanese Patent Application No.2009-105411 filed Apr. 23, 2009, which is hereby incorporated byreference herein in its entirety.

1. An apparatus comprising: a receiving unit configured to receive acommand for controlling at least one of a plurality of storageapparatuses from a host apparatus; a sending unit configured to sendoverwrite data to overwrite a region in which the data is stored in aspecific storage apparatus, when the received command is a deletioncommand to delete the stored data; and a control unit configured tostore the received command at least until completion of sending of theoverwrite data if the received command is a command for the specificstorage apparatus, when a new command is received during sending of theoverwrite data to the specific storage apparatus, or to storeinformation indicating processing progression of sending of theoverwrite data and perform priority execution of the received command,or when the received command is not a command to the specific storageapparatus, to execute processing of the command.
 2. The apparatusaccording to claim 1, wherein the deletion command is added attributedata including information to designate the specific storage apparatus,wherein the sending unit selects the specific storage apparatus based onthe added attribute data and sends the overwrite data to the specificapparatus, and wherein the control unit selects the specific storageapparatus based on the added attribute data and sends the receivedcommand to the specific storage apparatus.
 3. The apparatus according toclaim 2, wherein the attribute data includes information to designate arange for deletion according to the deletion command.
 4. The apparatusaccording to claim 2, wherein the attribute data includes information todesignate overwrite data.
 5. The apparatus according to claim 2, whereinthe attribute data includes information to designate an overwrite numberof times by the overwrite data.
 6. The apparatus according to claim 1,wherein the control unit is configured to store information indicatingprogression state of sending the overwrite data in a non-volatilestorage unit when the receiving unit receives a command to cut off powersupply to the specific storage apparatus during sending of overwritedata to the specific storage apparatus, or to restart sending of theoverwrite data based on information indicating progression of theoverwrite data stored in the non-volatile storage unit, when thespecific storage apparatus is activated.
 7. A method comprising:receiving a command for controlling at least one of a plurality ofstorage apparatuses from a host apparatus; sending overwrite data to aspecific storage apparatus for overwriting a region in which the data isstored, when the received command is a deletion command to delete storeddata; and storing the received command at least until completion ofsending of the overwrite data if the received command is a command tothe specific storage apparatus, when a new command is received duringsending of the overwrite data to the specific storage apparatus, orstoring information indicating progression of sending of the overwritedata to execute priority execution of the received command, or when thereceived command is not a command to the specific storage apparatus,executing processing of the command.
 8. The method according to claim 7,wherein the deletion command is added attribute data includinginformation to designate the specific storage apparatus, and thespecific storage apparatus is selected based on the added attributedata, and the overwrite data is sent to the specific apparatus, and thespecific storage apparatus is selected based on the added attributedata, and the received command is sent to the specific storageapparatus.
 9. The method according to claim 8, wherein the attributedata includes information to designate a range for deletion according tothe deletion command.
 10. The method according to claim 8, wherein theattribute data includes information to designate the overwrite data. 11.The method according to claim 8, wherein the attribute data includesinformation to designate an overwrite number of times by the overwritedata.
 12. The method according to claim 7, wherein the informationindicating progression state of sending the overwrite data is stored ina non-volatile storage unit when a command to cut off power supply tothe specific storage apparatus is received during sending of theoverwrite data to the specific storage apparatus, or sending of theoverwrite data is restarted based on the information indicatingprogression of sending the overwrite data stored in the non-volatilestorage unit when the specific storage apparatus is activated.
 13. Acomputer readable storage medium storing a computer-executable programof instructions for causing a computer to perform a method comprising:receiving a command for controlling at least one of a plurality ofstorage apparatuses from a host apparatus; sending overwrite data to aspecific storage apparatus for overwriting a region in which the data isstored, when the received command is a deletion command to delete storeddata; and storing the received command at least until completion ofsending of the overwrite data if the received command is a command tothe specific storage apparatus, when a new command is received duringsending of the overwrite data to the specific storage apparatus, orstoring information indicating progression of sending of the overwritedata to execute priority execution of the received command, or when thereceived command is not a command to the specific storage apparatus,executing processing of the command.
 14. The computer readable storagemedium according to claim 13, wherein the deletion command is addedattribute data including information to designate the specific storageapparatus, and the specific storage apparatus is selected based on theadded attribute data, and the overwrite data is sent to the specificapparatus, and the specific storage apparatus is selected based on theadded attribute data, and the received command is sent to the specificstorage apparatus.
 15. The computer readable storage medium according toclaim 14, wherein the attribute data includes information to designate arange for deletion according to the deletion command.
 16. The computerreadable storage medium according to claim 14, wherein the attributedata includes information to designate the overwrite data.
 17. Thecomputer readable storage medium according to claim 14, wherein theattribute data includes information to designate an overwrite number oftimes by the overwrite data.
 18. The computer readable storage mediumaccording to claim 13, wherein the information indicating progressionstate of sending the overwrite data is stored in a non-volatile storageunit when a command to cut off power supply to the specific storageapparatus is received during sending of the overwrite data to thespecific storage apparatus, or sending of the overwrite data isrestarted based on the information indicating progression of sending theoverwrite data stored in the non-volatile storage unit when the specificstorage apparatus is activated.